/*
Felipe Silva Muniz - 6793326
Yule Vaz - 5881819
Aline Abreu Santos - 6552035

SCC241 - Laboratório de Base de Dados
Turma A2

Trabalho Prático 4

Script de criação e inserção
*/
/
--Comando para criar as sequências corretamente
ALTER SESSION SET deferred_segment_creation=FALSE;
--Comando para permitir inserção de caracteres especiais
ALTER SESSION SET NLS_LANGUAGE = 'PORTUGUESE' NLS_TERRITORY = 'BRAZIL';
/
--Comandos de remoção das tabelas
DROP TABLE emissora CASCADE CONSTRAINTS;
DROP TABLE departamento CASCADE CONSTRAINTS;
DROP TABLE tipoFuncionario CASCADE CONSTRAINTS;
DROP TABLE funcionario CASCADE CONSTRAINTS;
DROP TABLE dependente CASCADE CONSTRAINTS;
DROP TABLE gerencia CASCADE CONSTRAINTS;
DROP TABLE trabalho CASCADE CONSTRAINTS;
DROP TABLE filme CASCADE CONSTRAINTS;
DROP TABLE exibicaoFilme CASCADE CONSTRAINTS;
DROP TABLE serie CASCADE CONSTRAINTS;
DROP TABLE temporada CASCADE CONSTRAINTS;
DROP TABLE episodioSerie CASCADE CONSTRAINTS;
DROP TABLE exibicaoSerie CASCADE CONSTRAINTS;
DROP TABLE jornal CASCADE CONSTRAINTS;
DROP TABLE exibicaoJornal CASCADE CONSTRAINTS;
DROP TABLE comercial CASCADE CONSTRAINTS;
DROP TABLE cliente CASCADE CONSTRAINTS;
DROP TABLE exibicaoComercial CASCADE CONSTRAINTS;
DROP TABLE novela CASCADE CONSTRAINTS;
DROP TABLE episodioNovela CASCADE CONSTRAINTS;
DROP TABLE exibicaoNovela CASCADE CONSTRAINTS;
DROP TABLE valorComercial CASCADE CONSTRAINTS;
DROP TABLE nroDependentes CASCADE CONSTRAINTS;
/* ------------------------------------------ */
/
/*TABELA: emissora
  ATRIBUTOS:
  cnpjEm: cnpj da emissora. Chave primária da tabela.
          Foi utilizado o tipo CHAR porque quando se utiliza o tipo NUMBER e o cnpj começa com zero, esse zero não é armazenado.
  nomeCompletoEm: nome completo da emissora, ou seja, razão social
  nomeFantasiaEm: nome de fantasia da emissora
  enderecoEm: endereço da emissora
  dataFundacaoEm: data de fundação da emissora
*/
CREATE TABLE emissora (
cnpjEm CHAR(18) NOT NULL,
nomeCompletoEm VARCHAR2(100),
nomeFantasiaEm VARCHAR2(100),
enderecoEm VARCHAR2(100),
dataFundacaoEm DATE,
CONSTRAINT PK_EMISSORA PRIMARY KEY(cnpjEm),
CONSTRAINT K2_EMISSORA UNIQUE(nomeCompletoEm)
);
/
/*TABELA: departamento
  ATRIBUTOS:
  idDe: número de identificação do departamento. Chave primária da tabela.
  nomeDe: nome do departamento
  telefoneDe: número de telefone do departamento
  nroFuncionariosDe: número de funcionários do departamento
  cnpjEm: cnpj da emissora à qual o departamento pertence. Referencia a tabela emissora.
          Foi utilizado o tipo CHAR porque quando se utiliza o tipo NUMBER e o cnpj começa com zero, esse zero não é armazenado.
*/
CREATE TABLE departamento (
idDe NUMBER(4) NOT NULL,
nomeDe VARCHAR2(30),
telefoneDe NUMBER(10),
nroFuncionariosDe NUMBER(2),
cnpjEm CHAR(18) NOT NULL,
CONSTRAINT PK_DEPARTAMENTO PRIMARY KEY(idDe),
CONSTRAINT K2_DEPARTAMENTO UNIQUE(nomeDe),
CONSTRAINT FK_DEPARTAMENTO FOREIGN KEY(cnpjEm) REFERENCES emissora(cnpjEm) ON DELETE CASCADE,
CONSTRAINT CHECK_DEPARTAMENTO_NROFUNC CHECK(nroFuncionariosDe >= 0)
);
/
/*TABELA: tipoFuncionario
  ATRIBUTOS:
  idTipoFu: número de identificação do tipo de funcionário. Chave primária.
  salarioBaseTipoFu: salário base para dado tipo de funcionário
  descricaoTipoFu: indica qual é o tipo de funcionário, ex.: ator
*/
CREATE TABLE tipoFuncionario (
idTipoFu NUMBER(4) NOT NULL,
salarioBaseTipoFu NUMBER(10,2) NOT NULL,
descricaoTipoFu VARCHAR2(300),
CONSTRAINT PK_TIPOFUNCIONARIO PRIMARY KEY(idTipoFu),
CONSTRAINT CHECK_TIPOFUNCIONARIO_SALBASE CHECK(salarioBaseTipoFu > 0)
);
/
/*TABELA: funcionario
  ATRIBUTOS:
  idFu: número de identificação do funcionário. Chave primária.
  nomeCompletoFu: nome completo do funcionário
  dataNascimentoFu: data de nascimento do funcionário
  cpfFu: cpf do funcionário
         Foi utilizado o tipo CHAR porque quando se utiliza o tipo NUMBER e o cpf começa com zero, esse zero não é armazenado.
  salarioFu: salário do funcionário. Este atributo é derivado do salário base correspondente ao tipo do funcionário, da quantidade
             de dependentes com menos de 18 anos de idade e do tempo de serviço na emissora, sendo que o salário é obtido da seguinte
             forma: salário base * número de anos de serviço + salário mínimo * quantidade de dependentes
  idTipoFu: identificador correspondente ao tipo do funcionário. Referencia a tabela tipoFuncionario.
*/
CREATE TABLE funcionario (
idFu NUMBER(4) NOT NULL,
nomeCompletoFu VARCHAR2(50) NOT NULL,
dataNascimentoFu DATE,
cpfFu CHAR(14) NOT NULL,
salarioFu NUMBER(10,2) NOT NULL,
idTipoFu NUMBER(1) NOT NULL,
CONSTRAINT PK_FUNCIONARIO PRIMARY KEY(idFu),
CONSTRAINT K2_FUNCIONARIO UNIQUE(cpfFu),
CONSTRAINT FK_FUNCIONARIO FOREIGN KEY(idTipoFu) REFERENCES tipoFuncionario(idTipoFu) ON DELETE CASCADE,
CONSTRAINT CHECK_FUNCIONARIO_SALARIOFU CHECK(salarioFu > 0)
);
/
/*
  TABELA: nroDependentes
  ATRIBUTOS: 
  idFU: identificador do funcionário responsável pelo dependente em questão. Chave primária e chave estrangeira. Referencia a 
  tabela funcionario.
  total: número de dependentes do funcionário.
*/
CREATE TABLE nroDependentes (
  idFu NUMBER(4) NOT NULL,
  total NUMBER(2) DEFAULT 0,
  CONSTRAINT PK_NRODEP PRIMARY KEY(idFu),
  CONSTRAINT FK_NRODEP FOREIGN KEY(idFu) REFERENCES funcionario(idFu) ON DELETE CASCADE
);
/
/*TABELA: dependente
  ATRIBUTOS:
  idFu: identificador do funcionário responsável pelo dependente em questão. Compõe a chave primária.
  nomeCompletoDe: nome completo do dependente. Compõe a chave primária.
  dataNascimentoDe: data de nascimento do dependente
  sexoDe: sexo do dependente
*/
CREATE TABLE dependente (
idFu NUMBER(4) NOT NULL,
nomeCompletoDe VARCHAR2(30) NOT NULL,
dataNascimentoDe DATE,
sexoDe VARCHAR2(1),
CONSTRAINT PK_DEPENDENTE PRIMARY KEY(idFu, nomeCompletoDe),
CONSTRAINT FK_DEPENDENTE FOREIGN KEY(idFu) REFERENCES funcionario(idFu),
CONSTRAINT CHECK_DEPENDENTE_SEXODE CHECK(UPPER(sexoDe) IN ('M', 'F'))
);
/
/*TABELA: gerencia
  ATRIBUTOS: 
  idDe: número de identificação do departamento gerenciado
  idFu: número de identificação do funcionário que é/foi gerente do departamento em questão
  dataInicioGe: data de início da gestão do gerente no departamento em questão
  dataFimGe: data de fim da gestão do gerente no departamento em questão
*/
CREATE TABLE gerencia (
idDe NUMBER(4) NOT NULL,
idFu NUMBER(4) NOT NULL,
dataInicioGe DATE NOT NULL,
dataFimGe DATE,
CONSTRAINT PK_GERENCIA PRIMARY KEY(idDe, idFu, dataInicioGe),
CONSTRAINT FK_GERENCIA_IDDE FOREIGN KEY(idDe) REFERENCES departamento(idDe),
CONSTRAINT FK_GERENCIA_IDFU FOREIGN KEY(idFu) REFERENCES funcionario(idFu)
);
/
/*TABELA: trabalho
  ATRIBUTOS:
  idDe: número de identificação do departamento no qual o funcionário trabalha. Compõe a chave primária. Referencia a tabela departamento.
  idFu: número de identificação do funcionário que trabalha no departamento em questão. Compõe a chave primária. Referencia a tabela funcionario.
  dataInicioTr: data de início do funcionário no departamento em questão. Compõe a chave primária.
  dataFimTr: data de fim do período de serviço do funcionário no departamento em questão*/
CREATE TABLE trabalho (
idDe NUMBER(4) NOT NULL,
idFu NUMBER(4) NOT NULL,
dataInicioTr DATE NOT NULL,
dataFimTr DATE,
CONSTRAINT PK_TRABALHO PRIMARY KEY(idDe, idFu, dataInicioTr),
CONSTRAINT FK_TRABALHO_IDDE FOREIGN KEY(idDe) REFERENCES departamento(idDe),
CONSTRAINT FK_TRABALHO_IDFU FOREIGN KEY(idFu) REFERENCES funcionario(idFu)
);
/
/*TABELA: filme
  ATRIBUTOS:
  idPr: número de identificação do filme. Chave primária.
  tituloPr: título do filme.
  descricaoPr: breve descrição do filme.
  idDe: número de identificação do departamento responsável pelo filme. Referencia a tabela departamento.
  producaoNacionalEn: identifica se o filme é uma produção nacional ou estrangeira.
  anoLancamentoFi: ano de lançamento do filme
  duracaoFi: tempo de duração do filme
             Foi utilizado o tipo CHAR porque quando o tipo date ou timestamp são utilizados, mesmo com a máscara apropriada,
             é armazenada uma data no formato DD-MM-AAAA 
  generoFi: genero do filme
*/
CREATE TABLE filme (
idPr NUMBER(4) NOT NULL,
tituloPr VARCHAR2(60) NOT NULL,
descricaoPr VARCHAR2(300),
idDe NUMBER(4) NOT NULL,
producaoNacionalEn VARCHAR2(30),
anoLancamentoFi NUMBER(4),
duracaoFi CHAR(7),
generoFi VARCHAR2(30),
CONSTRAINT PK_FILME PRIMARY KEY(idPr),
CONSTRAINT FK_FILME FOREIGN KEY(idDe) REFERENCES departamento(idDe),
CONSTRAINT CHECK_FILME_PRODUCAONACIONALEN
  CHECK(UPPER(producaoNacionalEn) IN ('NACIONAL', 'ESTRANGEIRO')),
CONSTRAINT CHECK_FILME_GENEROFI
  CHECK(UPPER(generoFi) IN ('COMÉDIA', 'COMÉDIA ROMÂNTICA', 'AÇÃO', 'SUSPENSE', 'TERROR', 'DOCUMENTÁRIO', 'ROMANCE', 'DRAMA'))
);
/
/*TABELA: exibicaoFilme
  ATRIBUTOS:
  idPr: número de identificação do filme em questão. Compõe a chave primária. Referencia a tabela filme.
  dataExFi: data de exibição do filme. Compõe a chave primária.
  horaInicioExFi: hora de início da exibição do filme. Compõe a chave primária.
                  Foi utilizado o tipo CHAR porque quando o tipo date ou timestamp são utilizados, mesmo com a máscara apropriada,
                  é armazenada uma data no formato DD-MM-AAAA. 
  horaFimExFi: hora do término da exibição do filme. 
               Foi utilizado o tipo CHAR porque quando o tipo date ou timestamp são utilizados, mesmo com a máscara apropriada,
               é armazenada uma data no formato DD-MM-AAAA.
  ibopeExFi: ibope atingido durante a exibição do filme.
*/
CREATE TABLE exibicaoFilme (
idPr NUMBER(4) NOT NULL,
dataExFi DATE NOT NULL,
horaInicioExFi CHAR(5) NOT NULL,
horaFimExFi CHAR(5),
ibopeExFi NUMBER(3,1),
CONSTRAINT PK_EXIBICAOFILME PRIMARY KEY(idPr, dataExFi, horaInicioExFi),
CONSTRAINT FK_EXIBICAOFILME FOREIGN KEY(idPr) REFERENCES filme(idPr),
CONSTRAINT CHECK_EXIBICAOFILME_IBOPEEXFI CHECK(ibopeExFi >= 0)
);
/
/*TABELA: serie
  ATRIBUTOS:
  idPr: número de identificação da série. Chave primária da tabela.
  tituloPr: título da série.
  descricaoPr: breve descrição da série.
  idDe: número de identificação do departamento responsável pela série. Referencia a tabela departamento.
  producaoNacionalEn: identifica se a série é de produação nacional ou estrangeira.
  generoSe: gênero da série
  nroTemporadasSe: número de temporadas da série
*/
CREATE TABLE serie (
idPr NUMBER(4) NOT NULL,
tituloPr VARCHAR2(30) NOT NULL,
descricaoPr VARCHAR2(300),
idDe NUMBER(4) NOT NULL,
producaoNacionalEn VARCHAR2(30),
generoSe VARCHAR2(30),
nroTemporadasSe NUMBER(2),
CONSTRAINT PK_SERIE PRIMARY KEY(idPr),
CONSTRAINT FK_SERIE FOREIGN KEY(idDe) REFERENCES departamento(idDe),
CONSTRAINT CHECK_SERIE_PRODUCAONACIONALEN
  CHECK(UPPER(producaoNacionalEn) IN ('NACIONAL', 'ESTRANGEIRO')),
CONSTRAINT CHECK_SERIE_GENEROSE
  CHECK(UPPER(generoSe) IN ('COMÉDIA', 'MÉDICO', 'POLICIAL', 'TERROR', 'DOCUMENTÁRIO', 'DRAMA', 'FICÇÃO', 'AÇÃO')),
CONSTRAINT CHECK_SERIE_NROTEMPORADASSE CHECK(nroTemporadasSe >= 0)
);
/
/*TABELA: temporada
  ATRIBUTOS:
  idPr: número de identificação da série à qual a temporada pertence. Compõe a chave primária da tabela. Referencia a tabela serie.
  nroTe: número da temporada. Compõe a chave primária.
  descricaoTe: breve descrição da temporada.
  nroEpisodiosTe: número de episódios da temporada.
*/
CREATE TABLE temporada (
idPr NUMBER(4) NOT NULL,
nroTe NUMBER(2) NOT NULL,
descricaoTe VARCHAR2(300),
nroEpisodiosTe NUMBER(2),
CONSTRAINT PK_TEMPORADA PRIMARY KEY(idPr, nroTe),
CONSTRAINT FK_TEMPORADA FOREIGN KEY(idPr) REFERENCES serie(idPr),
CONSTRAINT CHECK_TEMPORADA_NROEPISODIOSTE CHECK(nroEpisodiosTe > 0)
);
/
/
/
/*TABELA: episodioSerie
  ATRIBUTOS:
  -idPr: número de identificação da série. Compõe a chave primária. Referencia temporada.
  -nroTe: número da temporada. Compõe a chave primária. Referencia temporada.
  -nroEpSe: número do episódio. Compõe a chave primária
  -tituloEpSe: título do episódio
  -resumoEpSe: resumo do episódio
  -duracaoEpSe: duração do episódio
*/
CREATE TABLE episodioSerie (
idPr NUMBER(4) NOT NULL,
nroTe NUMBER(2) NOT NULL,
nroEpSe NUMBER(3) NOT NULL,
tituloEpSe VARCHAR2(30) NOT NULL,
resumoEpSe VARCHAR2(500),
duracaoEpSe VARCHAR2(20),
CONSTRAINT PK_EPISODIOSERIE PRIMARY KEY(idPr, nroTe, nroEpSe),
CONSTRAINT FK_EPISODIOSERIE_IDPR FOREIGN KEY(idPr,nroTe) REFERENCES temporada(idPr,nroTe)
);
/
/*TABELA: exibicaoSerie
  ATRIBUTOS:
  -idPr: número de identificação da série. Compõe a chave primária. Referencia a tabela episodioSerie.
  -nroTe: número da temporada. Compõe a chave primária. Referencia a tabela episodioSerie.
  -nroEpSe: número do episódio. Compõe a chave primária. Referencia a tabela episodioSerie.
  -dataExSe: data de exibição do episódio. Compõe a chave primária.
  -horaInicioExSe: hora de início da exibição do episódio. Compõe a chave primária.
  -horaFimExSe: hora do término da exibição do episódio. Compõe a chave primária.
  -ibopeExSe: ibope atingido na exibição do episódio.
*/
CREATE TABLE exibicaoSerie (
idPr NUMBER(4) NOT NULL,
nroTe NUMBER(2) NOT NULL,
nroEpSe NUMBER(3) NOT NULL,
dataExSe DATE NOT NULL,
horaInicioExSe CHAR(5) NOT NULL,
horaFimExSe CHAR(5),
ibopeExSe NUMBER(3,1),
CONSTRAINT PK_EXIBICAOSERIE PRIMARY KEY(idPr, nroTe, nroEpSe, dataExSe, horaInicioExSe),
CONSTRAINT FK_EXIBICAOSERIE_IDPR FOREIGN KEY(idPr, nroTe, nroEpSe) REFERENCES episodioSerie(idPr, nroTe, nroEpSe),
CONSTRAINT CHECK_EXIBICAOSERIE_IBOPEEXSE CHECK(ibopeExSe >= 0)
);
/
/*TABELA: jornal
  ATRIBUTOS:
  -idPr: número de identificação do jornal. Chave primária.
  -tituloPr: título do jornal.
  -descricaoPr: descrição do jornal.
  -idDe: número de identificação do departamento responsável pelo jornal. Referencia a tabela departamento.
  -duracaoJo: tempo de duração do jornal
  -abrangenciaJo: indica a abrangencia do jornal
*/
CREATE TABLE jornal (
idPr NUMBER(4) NOT NULL,
tituloPr VARCHAR2(30) NOT NULL,
descricaoPr VARCHAR2(300),
-- todo o programa deve estar relacionado a um departamento
-- por isto idDe é NOT NULL
idDe NUMBER(4) NOT NULL,
duracaoJo VARCHAR2(20),
abrangenciaJo VARCHAR2(13),
CONSTRAINT PK_JORNAL PRIMARY KEY(idPr),
CONSTRAINT FK_JORNAL_IDDE FOREIGN KEY(idDe) REFERENCES departamento(idDe),
CONSTRAINT CHECK_JORNAL_ABRANGENCIAJO
    CHECK( UPPER(abrangenciaJo)in('REGIONAL','ESTADUAL','NACIONAL','INTERNACIONAL') )
);
/
/*TABELA: exibicaoJornal
  ATRIBUTOS: 
  -idPr: número de identificação do jornal. Compõe a chave primária. Referencia jornal.
  -idFu: número de identificação do funcionário responsável pelo jornal. Compõe a chave primária. Referencia a tabela funcionário.
  -dataExJo: data de exibição do jornal. Compõe a chave primária.
  -horaInicioExJo: hora de início da exibição do jornal. Compõe a chave primária.
  -horaFimExJo: hora do término da exibição do jornal.
  -ibopeExJo: ibope atingido durante a exibição do jornal.
*/
CREATE TABLE exibicaoJornal (
idPr NUMBER(4) NOT NULL,
idFu NUMBER(4) NOT NULL,
dataExJo DATE NOT NULL,
horaInicioExJo CHAR(5) NOT NULL,
horaFimExJo CHAR(5),
ibopeExJo NUMBER(3,1),
CONSTRAINT PK_EXIBICAOJORNAL PRIMARY KEY(idPr,idFu,dataExJo,horaInicioExJo),
CONSTRAINT FK_EXIBICAOJORNAL_IDPR FOREIGN KEY(idPr) REFERENCES jornal(idPr),
CONSTRAINT FK_EXIBICAOJORNAL_IDFU FOREIGN KEY(idFu) REFERENCES funcionario(idFu),
CONSTRAINT CHECK_EXIBICAOJORNAL_IBOPEEXJO CHECK(ibopeExJo >= 0)
);
/
/*TABELA: comercial
  ATRIBUTOS:
  -idPr: número de identificação do jornal. Chave primária.
  -tituloPr: título do comercial.
  -descricaoPr: descrição do comercial.
  -idDe: número de identificação do departamento responsável pelo comercial. Referencia a tabela departamento.
*/
CREATE TABLE comercial (
idPr NUMBER(4) NOT NULL,
tituloPr VARCHAR(50) NOT NULL,
descricaoPr VARCHAR2(300),
-- todo o programa deve estar relacionado a um departamento
-- por isto idDe é NOT NULL
idDe NUMBER(4) NOT NULL,
CONSTRAINT PK_COMERCIAL PRIMARY KEY(idPr),
CONSTRAINT FK_COMERCIAL_IDDE FOREIGN KEY(idDe) REFERENCES departamento(idDe)
);
/
/*TABELA: cliente
  ATRIBUTOS:
  -cnpjCl: cnpj do cliente. Chave primária.
  -nomeCompletoCl: nome completo do cliente, ou seja, razão social.
  -nomeFantasiaCl: nome de fantasia do cliente.
*/
CREATE TABLE cliente (
cnpjCl CHAR(18) NOT NULL,
nomeCompletoCl VARCHAR2(100) NOT NULL,
nomeFantasiaCl VARCHAR(100),
CONSTRAINT PK_CLIENTE PRIMARY KEY(cnpjCl),
CONSTRAINT K2_CLIENTE UNIQUE(nomeCompletoCl)
);
/
/*TABELA: exibicaoComercial
  ATRIBUTOS:
  -idPr: número de identificação do comercial. Compõe a chave primária. Referencia comercial.
  -dataExCo: data de exibição do comercial. Compõe a chave primária.
  -horaInicioExCo: hora de início da exibição do comercial. Compõe a chave primária.
  -horaFimExCo: hora do término da exibição do comercial.
  -precoExCo: preço do comercial.
  -cnpjCl: cnpj do cliente. Referencia a tabela cliente.
*/
CREATE TABLE exibicaoComercial (
idPr NUMBER(4) NOT NULL,
dataExCo DATE NOT NULL,
horaInicioExCo CHAR(5) NOT NULL,
horaFimExCo CHAR(5),
precoExCo NUMBER(10,2) NOT NULL,
-- cnpjCl deve ser NOT NULL pois exibicaoComercial é uma agregação
-- entre a relação cliente-comercial que é participação total
cnpjCl CHAR(18) NOT NULL,
CONSTRAINT PK_EXCO PRIMARY KEY(idPr,dataExCo,horaInicioExCo),
CONSTRAINT FK_EXCO_IDPR FOREIGN KEY(idPr) REFERENCES comercial(idPr),
CONSTRAINT FK_EXCO_CNPJCL FOREIGN KEY(cnpjCl) REFERENCES cliente(cnpjCl),
CONSTRAINT CHECK_EXCOM_PRECOEXCO CHECK(precoExCo > 0)
);
/
/*TABELA: novela
  ATRIBUTOS:
  -idPr: número de identificação da novela. Chave primária.
  -tituloPr: título da novela.
  -descricaoPr: descrição da novela.
  -idDe: número de identificação do departamento responsável pela novela. Referencia a tabela departamento.
  -producaoNacionalEn: indica se a novela é nacional ou estrangeira.
*/
CREATE TABLE novela (
idPr NUMBER(4) NOT NULL,
tituloPr VARCHAR2(30) NOT NULL,
descricaoPr VARCHAR2(300),
idDe NUMBER(4) NOT NULL,
producaoNacionalEn VARCHAR(30) NOT NULL,
CONSTRAINT PK_NOVELA PRIMARY KEY(idPr),
CONSTRAINT K2_NOVELA UNIQUE(tituloPr),
CONSTRAINT FK_NOVELA_IDDE FOREIGN KEY(idDe) REFERENCES departamento(idDe)
);
/
/*TABELA: episodioNovela
  ATRIBUTOS:
  -idPr: número de identificação da novela. Compõe a chave primária. Referencia novela.
  -nroEpNo: número do episódio. Compõe a chave primária
  -resumoEpNo: resumo do episódio
  -duracaoEpNo: duração do episódio
*/
CREATE TABLE episodioNovela (
idPr NUMBER(4) NOT NULL,
nroEpNo NUMBER(3) NOT NULL,
resumoEpNo VARCHAR2(300),
duracaoEpNo VARCHAR2(20),
CONSTRAINT PK_EPISODIONOVELA PRIMARY KEY(idPr, nroEpNo),
CONSTRAINT FK_EPISODIONOVELA_IDPR FOREIGN KEY(idPr) REFERENCES novela(idPr)
);
/
/*TABELA: exibicaoNovela
  ATRIBUTOS:
  -idPr: número de identificação da novela. Compõe a chave primária. Referencia episodioNovela.
  -nroEpNo: número do episódio. Compõe a chave primária. Referencia episodioNovela.
  -dataExNo: data de exibição da novela. Compõe a chave primária.
  -horaInicioExNo: hora de início da exibição da novela. Compõe a chave primária.
  -horaFimExNo: hora do término da exibição da novela.
  -ibopeExNo: ibope atingido durante a exibição da novela.
*/
CREATE TABLE exibicaoNovela (
idPr NUMBER(4) NOT NULL,
nroEpNo NUMBER(3) NOT NULL,
dataExNo DATE NOT NULL,
horaInicioExNo CHAR(5) NOT NULL,
horaFimExNo CHAR(5),
ibopeExNo NUMBER(3,1),
CONSTRAINT PK_EXIBICAONOVELA PRIMARY KEY(idPr,nroEpNo,dataExNo,horaInicioExNo),
CONSTRAINT FK_EXIBICAONOVELA_IDPR FOREIGN KEY(idPr,nroEpNo) REFERENCES episodioNovela(idPr,nroEpNo),
CONSTRAINT CHECK_EXIBICAONOVELA_IBOPEEXNO CHECK(ibopeExNo >= 0)
);
/
/*TABELA: valorComercial
  ATRIBUTOS:
  -anoVaCo: ano referente ao valor do comercial. Compõe a chave primária.
  -diaSemanaVaco: dia da semana referente ao valor do comercial. Compõe a chave primária.
  -horaInicioVaco: hora referente ao valor do comercial. Compõe a chave primária.
  -precoPorSegundoVaCo: preco do segundo de comercial
*/
CREATE TABLE valorComercial (
anoVaCo NUMBER(4) NOT NULL,
diaSemanaVaCo VARCHAR(30) NOT NULL,
horaInicioVaCo CHAR(5) NOT NULL,
precoPorSegundoVaCo NUMBER(10,2) NOT NULL,
CONSTRAINT PK_VALORCOMERCIAL PRIMARY KEY(anoVaCo,diaSemanaVaCo,horaInicioVaCo),
CONSTRAINT CHECK_VALORCOMERCIAL_PRECO CHECK(precoPorSegundoVaCo >= 0)
);
/*
Felipe Silva Muniz - 6793326
Yule Vaz - 5881819
Aline Abreu Santos - 6552035

SCC241 - Laboratório de Base de Dados
Turma A2

Trabalho Prático 3

Script de inserção
*/
/
--Comandos de remoção das sequências
DROP SEQUENCE SEQ_DEPARTAMENTO_IDDE;
DROP SEQUENCE SEQ_TIPOFUNCIONARIO_IDTIPOFU;
DROP SEQUENCE SEQ_FUNCIONARIO_IDFU;
DROP SEQUENCE SEQ_PROGRAMA_IDPR;
/* -------------------------------- */
/
--Comandos de criação das sequências
CREATE SEQUENCE SEQ_DEPARTAMENTO_IDDE START WITH 1 MINVALUE 1;
CREATE SEQUENCE SEQ_TIPOFUNCIONARIO_IDTIPOFU START WITH 1 MINVALUE 1;
CREATE SEQUENCE SEQ_FUNCIONARIO_IDFU START WITH 1 MINVALUE 1;
CREATE SEQUENCE SEQ_PROGRAMA_IDPR START WITH 1 MINVALUE 1;
/* ---------------------------------- */
/
-- Inserção de tuplas na tabela emissora
-- emissora (cnpjEm, nomeCompletoEm, nomeFantasiaEm, enderecoEm, dataFundacaoEm)
INSERT INTO emissora
  VALUES ('00.373.798/0001-17', 'Globo Comunicação e Participações SA', 'Rede Globo',
  'Estrada dos Bandeirantes, 6900, Rio de Janeiro-RJ', TO_DATE('26-04-1965','DD-MM-YYYY'));
INSERT INTO emissora
  VALUES ('09.097.475/0001-12', 'TV Studios de Brasília S/C LTDA', 'SBT Brasília',
  'Setor de Rádio de TV Sul, quadra 701, lote C, ala A - Edifício Palácio da Imprensa', TO_DATE('01-06-1985','DD-MM-YYYY'));
INSERT INTO emissora
  VALUES ('08.145.558/0001-77', 'Rádio e Televisão Bandeirantes de MG LTDA', 'Band Minas Gerais',
  'Av. Raja Gabaglia, 2221, Belo Horizonte-MG', TO_DATE('13-05-1967','DD-MM-YYYY'));
/
--Inserção de tuplas na tabela departamento
--departamento (idDe, nomeDe, telefoneDe, nroFuncionariosDe, cnpjEm)
--nroFuncionariosDe é um atributo derivado que corresponde a quantidade de funcionários cadastrados na tabela trabalho relacionados a cada departamento
--nroFuncionariosDe = SELECT COUNT(*) FROM trabalho WHERE trabalho.idDe = departamento.idDe
INSERT INTO departamento
  VALUES (SEQ_DEPARTAMENTO_IDDE.NEXTVAL, 'Jornalismo', 2124022356, 3, '00.373.798/0001-17');
INSERT INTO departamento
  VALUES (SEQ_DEPARTAMENTO_IDDE.NEXTVAL, 'Esportes', 2124440377, 1, '00.373.798/0001-17');
INSERT INTO departamento
  VALUES (SEQ_DEPARTAMENTO_IDDE.NEXTVAL, 'Novelas e séries', 2124495558, 2, '09.097.475/0001-12');
INSERT INTO departamento
  VALUES (SEQ_DEPARTAMENTO_IDDE.NEXTVAL, 'Programas de auditório', 2124416573, 3, '08.145.558/0001-77');
INSERT INTO departamento
  VALUES (SEQ_DEPARTAMENTO_IDDE.NEXTVAL, 'Filmes', 2124435996, 1, '08.145.558/0001-77');
INSERT INTO departamento
  VALUES (SEQ_DEPARTAMENTO_IDDE.NEXTVAL, 'Comercial', 2124435973, 1, '08.145.558/0001-77');
/
-- Inserção de tuplas na tabela tipoFuncionario
-- tipoFuncionario (idTipoFu, salarioBaseTipoFu, descricaoTipoFu)
-- Tipo 1: Camera
INSERT INTO tipoFuncionario
  VALUES (SEQ_TIPOFUNCIONARIO_IDTIPOFU.NEXTVAL, 2000.00, 'Câmera');
-- Tipo 2: Gerente
INSERT INTO tipoFuncionario
  VALUES (SEQ_TIPOFUNCIONARIO_IDTIPOFU.NEXTVAL, 5000.00, 'Gerente');
-- Tipo 3: Ator
INSERT INTO tipofuncionario
  VALUES (SEQ_TIPOFUNCIONARIO_IDTIPOFU.NEXTVAL, 20000.00, 'Ator');
-- Tipo 4: Diretor
INSERT INTO tipoFuncionario
  VALUES (SEQ_TIPOFUNCIONARIO_IDTIPOFU.NEXTVAL, 10000.00, 'Diretor');
-- Tipo 5: Apresentador
INSERT INTO tipoFuncionario
  VALUES (SEQ_TIPOFUNCIONARIO_IDTIPOFU.NEXTVAL, 15000.00, 'Apresentador');
-- Tipo 6: Reporter
INSERT INTO tipoFuncionario
  VALUES (SEQ_TIPOFUNCIONARIO_IDTIPOFU.NEXTVAL, 7500.00, 'Repórter');
-- Tipo 7: Redator
INSERT INTO tipofuncionario
  VALUES (SEQ_TIPOFUNCIONARIO_IDTIPOFU.NEXTVAL, 6000.00, 'Redator');
/
-- Inserção de tuplas na tabelas funcionario e nroDependentes
-- funcionário (idFu, nomeCompletoFu, dataNascimentoFu, cpfFu, salarioFu,idTipoFu)
-- nroDependentes(idFu, total)
-- salarioFu é um atributo derivado calculado da seguinte forma:
-- salarioFu = (data atual - trabalho.dataInicioTr)*tipoFuncionario.salarioBaseTipoFu + (nº de dependentes)*salário mínimo
-- salário mínimo considerado: 545 reais
-- funcionário do tipo 1, trabalha ha 10 anos na emissora e possui 2 dependentes com menos de 18 anos
INSERT INTO funcionario
  VALUES (SEQ_FUNCIONARIO_IDFU.NEXTVAL, 'Alejandro Miguel Manzanares Chirinos', TO_DATE('11-10-1985','DD-MM-YYYY'), '035.406.423-15', 13090.00, 1);
INSERT INTO nroDependentes
  VALUES (SEQ_FUNCIONARIO_IDFU.CURRVAL,2);
-- funcionário do tipo 2, trabalha na empresa ha 6 anos e possui 1 dependente com menos de 18 anos
INSERT INTO funcionario
  VALUES (SEQ_FUNCIONARIO_IDFU.NEXTVAL, 'Alessandra Barros Verde', TO_DATE('27-10-1976','DD-MM-YYYY'), '590.323.911-00', 545.00, 2);
INSERT INTO nroDependentes
  VALUES (SEQ_FUNCIONARIO_IDFU.CURRVAL,1);
-- funcionário do tipo 3, trabalha na empresa ha 2 anos
INSERT INTO funcionario
  VALUES (SEQ_FUNCIONARIO_IDFU.NEXTVAL, 'Gabriela Cavazani', TO_DATE('13-06-1982','DD-MM-YYYY'), '427.352.541-00', 40000.00, 3);
INSERT INTO nroDependentes
  VALUES (SEQ_FUNCIONARIO_IDFU.CURRVAL,0);
-- funcionário do tipo 5, trabalha na empresa ha 5 anos
INSERT INTO funcionario
  VALUES (SEQ_FUNCIONARIO_IDFU.NEXTVAL, 'Ivan Tadeu Gomes de Oliveira', TO_DATE('15-11-1970','DD-MM-YYYY'), '452.361.006-15', 75000.00, 5);
INSERT INTO nroDependentes
  VALUES (SEQ_FUNCIONARIO_IDFU.CURRVAL,0);
-- funcionário do tipo 6, trabalha na empresa ha 8 anos
INSERT INTO funcionario
  VALUES (SEQ_FUNCIONARIO_IDFU.NEXTVAL, 'Jesse de Jesus Silva', TO_DATE('06-06-1964','DD-MM-YYYY'), '426.384.290-15', 60000.00, 6);
INSERT INTO nroDependentes
  VALUES (SEQ_FUNCIONARIO_IDFU.CURRVAL,0);
-- funcionário do tipo 7, trabalha na empresa ha 11 anos
INSERT INTO funcionario
  VALUES (SEQ_FUNCIONARIO_IDFU.NEXTVAL, 'Lívia Laura Goncalves', TO_DATE('03-04-1979','DD-MM-YYYY'), '047.928.152-15', 66000.00, 7);
INSERT INTO nroDependentes
  VALUES (SEQ_FUNCIONARIO_IDFU.CURRVAL,0);
-- funcionário do tipo 1, trabalha na empresa ha 3 anos
INSERT INTO funcionario
  VALUES (SEQ_FUNCIONARIO_IDFU.NEXTVAL, 'Mathias Miaciro Costa', TO_DATE('22-09-1968','DD-MM-YYYY'), '021.651.635-87', 6000.00, 1);
INSERT INTO nroDependentes
  VALUES (SEQ_FUNCIONARIO_IDFU.CURRVAL,0);
-- funcionário do tipo 2, trabalha na empresa ha 9 anos
INSERT INTO funcionario
  VALUES (SEQ_FUNCIONARIO_IDFU.NEXTVAL, 'Otávio Lino e Silva', TO_DATE('17-05-1982','DD-MM-YYYY'), '181.929.206-15', 45000.00, 2);
INSERT INTO nroDependentes
  VALUES (SEQ_FUNCIONARIO_IDFU.CURRVAL,0);
-- funcionário do tipo 6, trabalha na empresa há 10 anos
INSERT INTO funcionario
  VALUES (SEQ_FUNCIONARIO_IDFU.NEXTVAL, 'Jumar Antônio da Silva', TO_DATE('22-09-1987','DD-MM-YYYY'), '091.920.115-22', 75000.00, 6);
INSERT INTO nroDependentes
  VALUES (SEQ_FUNCIONARIO_IDFU.CURRVAL,0);
-- funcionário do tipo 6, trabalha na empresa há 5 anos
INSERT INTO funcionario
  VALUES (SEQ_FUNCIONARIO_IDFU.NEXTVAL, 'Joana Darc e Souza', TO_DATE('22-12-1979','DD-MM-YYYY'), '033.927.399-48', 37500.00, 6);
INSERT INTO nroDependentes
  VALUES (SEQ_FUNCIONARIO_IDFU.CURRVAL,0);
-- funcionário do tipo 7, trabalha na empresa há 7 anos
INSERT INTO funcionario
  VALUES (SEQ_FUNCIONARIO_IDFU.NEXTVAL, 'Marcelo Meira Júnior', TO_DATE('11-03-1989','DD-MM-YYYY'), '115.936.129-72', 42000.00, 7);
INSERT INTO nroDependentes
  VALUES (SEQ_FUNCIONARIO_IDFU.CURRVAL,0);
/
-- Inserção de tuplas na tabela cliente
-- cliente (cnpjCl, nomeCompletoCl, nomeFantasiaCl)
INSERT INTO cliente
  VALUES ('04.041.965/0001-83', 'A A Gouveia Suprimentos de Informática ME', 'Gouveia Computadores');
INSERT INTO cliente
  VALUES ('12.212.754/0001-36', '2B Comércio e Papelaria LTDA ME', 'Papelaria 2B');
INSERT INTO cliente
  VALUES ('08.779.651/0001-33', 'A Pandolfi Comercial e Fornecedora LTDA ME', 'Comercial Pandolfi');
INSERT INTO cliente
  VALUES('11.444.982/0001-27', 'MPI Brasil', 'MPI Computadores');
/
-- Inserção de tuplas na tabela dependente
-- dependente (idFu, nomeCompletoDe, dataNascimentoDe, sexoDe)
INSERT INTO dependente
  VALUES (1, 'Arilson Manzanares Chirinos', TO_DATE('25-11-1997','DD-MM-YYYY'), 'M');
INSERT INTO dependente
  VALUES (1, 'Alcides Manzanares Chirinos', TO_DATE('14-07-1999','DD-MM-YYYY'), 'M');
INSERT INTO dependente
  VALUES (2, 'Flávio Barros Verde', TO_DATE('22-03-2000','DD-MM-YYYY'), 'M');
/
-- Inserção de tuplas na tabela gerencia
-- gerencia (idDe, idFu, dataInicioGe, dataFimGe)
INSERT INTO gerencia(idDe, idFu, dataInicioGe)
  VALUES (3, 1, TO_DATE('18-02-2007','DD-MM-YYYY'));
INSERT INTO gerencia(idDe, idFu, dataInicioGe)
  VALUES (4, 8, TO_DATE('11-08-2005','DD-MM-YYYY'));
INSERT INTO gerencia(idDe, idFu, dataInicioGe)
  VALUES (2, 5, TO_DATE('20-08-2004','DD-MM-YYYY'));
INSERT INTO gerencia(idDe, idFu, dataInicioGe)
  VALUES (1, 10, TO_DATE('10-05-2009','DD-MM-YYYY'));

/
-- Inserção de tuplas na tabela trabalho
-- trabalho (idDe, idFu, dataInicioTr, dataFimTr)
INSERT INTO trabalho(idDe, idFu, dataInicioTr)
  VALUES (3, 1, TO_DATE('15-02-2005','DD-MM-YYYY'));
INSERT INTO trabalho(idDe, idFu, dataInicioTr)
  VALUES (1, 10, TO_DATE('23-02-2006','DD-MM-YYYY'));
INSERT INTO trabalho(idDe, idFu, dataInicioTr)
  VALUES (1, 11, TO_DATE('03-10-2004','DD-MM-YYYY'));
INSERT INTO trabalho(idDe, idFu, dataInicioTr)
  VALUES (4, 8, TO_DATE('20-07-2002','DD-MM-YYYY'));
INSERT INTO trabalho(idDe, idFu, dataInicioTr)
  VALUES (3, 3, TO_DATE('03-05-2009','DD-MM-YYYY'));
INSERT INTO trabalho(idDe, idFu, dataInicioTr)
  VALUES (4, 4, TO_DATE('20-07-2006','DD-MM-YYYY'));
INSERT INTO trabalho(idDe, idFu, dataInicioTr)
  VALUES (2, 5, TO_DATE('20-07-2003','DD-MM-YYYY'));
INSERT INTO trabalho(idDe, idFu, dataInicioTr)
  VALUES (1, 6, TO_DATE('20-07-2000','DD-MM-YYYY'));
INSERT INTO trabalho(idDe, idFu, dataInicioTr)
  VALUES (4, 7, TO_DATE('20-07-2008','DD-MM-YYYY'));
INSERT INTO trabalho(idDe, idFu, dataInicioTr)
  VALUES (5, 2, TO_DATE('20-07-2011','DD-MM-YYYY'));
INSERT INTO trabalho(idDe, idFu, dataInicioTr)
  VALUES (6, 9, TO_DATE('12-06-2001','DD-MM-YYYY'));
/
--Inserção de tuplas na tabela filme
--filme (idPr, tituloPr, descricaoPr, idDe, producaoNacionalEn, anoLancamentoFi, duracaoFi, generoFi)
INSERT INTO filme
  VALUES (SEQ_PROGRAMA_IDPR.NEXTVAL, 'Seven - Os Sete Crimes Capitais', 'Dois detetives, um novato e um veterano, caçam um serial killer que usa os sete pecados capitais como modus operandi.', 5, 'Estrangeiro', 1995, '127 min', 'Suspense');
INSERT INTO filme
  VALUES (SEQ_PROGRAMA_IDPR.NEXTVAL, 'American Pie - A Primeira Vez é Inesquecível', 'Quatro adolescentes fazem um pacto para perderem a virgindade na noite do prom', 5, 'Estrangeiro', 1999, '95 min', 'Comédia');
INSERT INTO filme
  VALUES (SEQ_PROGRAMA_IDPR.NEXTVAL, 'Tropa de Elite', '1997, Capitão Nascimento precisa encontrar um substituto para seu cargo enquanto combate o crime no Rio de Janeiro', 5, 'Nacional', 2007, '115 min', 'Ação');
INSERT INTO filme
  VALUES (SEQ_PROGRAMA_IDPR.NEXTVAL, 'Cidade de Deus', 'Dois garotos crescendo em uma favela do Rio de Janeiro tomam caminhos diferentes', 5, 'Nacional', 2002, '130 min', 'Drama');
/
-- Inserção de tuplas na tabela exibicaoFilme
-- exibicaoFilme (idPr, dataExFi, horaInicioExFi, horaFimExFi, ibopeExFi)
-- exibição do filme SEVEN
INSERT INTO exibicaoFilme
  VALUES (1, TO_DATE('29-07-1997','DD-MM-YYYY'), '21:00', '23:07', 10.5);
-- exibição do filme AMERICAN PIE
INSERT INTO exibicaoFilme
  VALUES (2, TO_DATE('13-12-2000','DD-MM-YYYY'), '22:00', '23:35', 14.7);
-- exibição do filme TROPA DE ELITE
INSERT INTO exibicaoFilme
  VALUES (3, TO_DATE('15-01-2010','DD-MM-YYYY'), '21:30', '23:25', 9.8);
-- exibição do filme CIDADE DE DEUS
INSERT INTO exibicaoFilme
  VALUES (4, TO_DATE('01-11-2005','DD-MM-YYYY'), '20:00', '22:10', 12.3);
/
--Inserção de tuplas na tabela serie
--serie (idPr, tituloPr, descricaoPr, idDe, producaoNacionalEn, generoSe, nroTemporadasSe)
--nroTemporadasSe é um atributo derivado da quantidade de temporadas correspondentes a cada série cadastrada na tabela temporada
--nroTemporadasSe = SELECT COUNT(*) FROM temporada WHERE temporada.idPr = serie.idPr
INSERT INTO serie
  VALUES (SEQ_PROGRAMA_IDPR.NEXTVAL, 'House', 'Um médico antisocial especialista em diagnósticos faz o que for preciso para resolver seus casos', 3, 'Estrangeiro', 'Drama', 1);
INSERT INTO serie
  VALUES (SEQ_PROGRAMA_IDPR.NEXTVAL, 'Lost', 'Os sobreviventes de uma queda de avião precisam sobreviver em uma ilha remota e cheia de mistérios', 3, 'Estrangeiro', 'Drama', 1);
INSERT INTO serie
  VALUES (SEQ_PROGRAMA_IDPR.NEXTVAL, 'The Walking Dead', 'O policial Rick Grimes lidera um grupo de sobreviventes em um mundo repleto de zumbis', 3, 'Estrangeiro', 'Terror', 1);
INSERT INTO serie
  VALUES (SEQ_PROGRAMA_IDPR.NEXTVAL, 'Californication', 'Um escritor tenta conciliar a carreira, o relacionamento com a filha e a ex-namorada e sua atração por belas mulheres', 3, 'Estrangeiro', 'Drama', 1);
/
-- Inserção de tuplas na tabela temporada
-- temporada (idPr, nroTe, descricaoTe, nroEpisodiosTe)
-- nroEpisodiosTe é um atributo derivado que corresponde a quantidade de episódios correspondentes a temporada na tabela episodioSerie
-- nroEpisodiosTe = SELECT COUNT(*) FROM episodioSerie WHERE episodioSerie.nroTe = temporada.nroTe
-- temporada da série HOUSE
INSERT INTO temporada
  VALUES (5, 3, 'House se interna em um centro psicológico', 1);
-- temporada da série LOST
INSERT INTO temporada
  VALUES (6, 4, 'É revelada a existência da misteriosa Iniciativa Dharma, bem como vários personagens novos aparecem', 1);
-- temporada da série THE WALKING DEAD
INSERT INTO temporada
  VALUES (7, 1, 'O policial Rick Grimes lidera um grupo de sobreviventes em um mundo repleto de zumbis', 1);
-- temporada da série CALIFORNICATION
INSERT INTO temporada
  VALUES (8, 2, 'Hank Moody terá que lidar com a ida a público do seu envolvimento com sua pseudo-enteada, menor de idade na época', 1);
/
-- Inserção de tuplas na tabela valorComercial
-- valorComercial (anoVaCo, diaSemanaVaCo, horaInicioVaCo, precoPorSegundoVaCo)
INSERT INTO valorComercial
  VALUES (2008,'Segunda-feira','21:30',10000.00);
INSERT INTO valorComercial
  VALUES (2009,'Segunda-feira','21:30',10000.00);
INSERT INTO valorComercial
  VALUES (2010,'Segunda-feira','21:30',10000.00);
  INSERT INTO valorComercial
  VALUES (2011,'Segunda-feira','21:30',10000.00);
INSERT INTO valorComercial
  VALUES (2008,'Terça-feira','09:30',1300.00);
INSERT INTO valorComercial
  VALUES (2009,'Terça-feira','09:30',1300.00);
INSERT INTO valorComercial
  VALUES (2010,'Terça-feira','09:30',1300.00);
INSERT INTO valorComercial
  VALUES (2011,'Terça-feira','09:30',1300.00);
INSERT INTO valorComercial
  VALUES (2008,'Quarta-feira','14:30',1500.00);
INSERT INTO valorComercial
  VALUES (2009,'Quarta-feira','14:30',1500.00);
INSERT INTO valorComercial
  VALUES (2010,'Quarta-feira','14:30',1500.00);
INSERT INTO valorComercial
  VALUES (2011,'Quarta-feira','14:30',1500.00);
INSERT INTO valorComercial
  VALUES (2008,'Quinta-feira','02:30',500.00);
INSERT INTO valorComercial
  VALUES (2009,'Quinta-feira','02:30',500.00);
INSERT INTO valorComercial
  VALUES (2010,'Quinta-feira','02:30',500.00);
INSERT INTO valorComercial
  VALUES (2011,'Quinta-feira','02:30',500.00);
INSERT INTO valorComercial
  VALUES (2008,'Sexta-feira','06:00',1000.00);
INSERT INTO valorComercial
  VALUES (2009,'Sexta-feira','06:00',1000.00);
INSERT INTO valorComercial
  VALUES (2010,'Sexta-feira','06:00',1000.00);
INSERT INTO valorComercial
  VALUES (2011,'Sexta-feira','06:00',1000.00);
INSERT INTO valorComercial
  VALUES (2008,'Sábado','17:30',2000.00);
INSERT INTO valorComercial
  VALUES (2009,'Sábado','17:30',2000.00);
INSERT INTO valorComercial
  VALUES (2010,'Sábado','17:30',2000.00);
INSERT INTO valorComercial
  VALUES (2011,'Sábado','17:30',2000.00);
INSERT INTO valorComercial
  VALUES (2008,'Domingo','18:30',5000.00);
INSERT INTO valorComercial
  VALUES (2009,'Domingo','18:30',5000.00);
INSERT INTO valorComercial
  VALUES (2010,'Domingo','18:30',5000.00);
INSERT INTO valorComercial
  VALUES (2011,'Domingo','18:30',5000.00);
/
-- Inserção de tuplas na tabela episodioSerie
-- episodioSerie (idPr, nroTe, nroEpSe, tituloEpSe, resumoEpSe, duracaoEpSe)
INSERT INTO episodioSerie
  VALUES(5, 3, 2, 'Paternidade', 'House trata pai e filho ao mesmo tempo.', '43 min');
INSERT INTO episodioSerie
  VALUES(6, 4, 5, 'Orientação', 'John Locke visita a cabana misteriosa', '41 min');
INSERT INTO episodioSerie
  VALUES(7, 1, 3, 'TS-19', 'Uma grande explosão deixa os sobreviventes sem lugar para se esconder', '33 min');
INSERT INTO episodioSerie
  VALUES(8, 2, 7, 'LOL', 'Hank Moody tem uma overdose', '30 min');
/  
-- Inserção de tuplas na tabela exibicaoSerie
-- exibicaoSerie (idPr, nroTe, nroEpSe, dataExSe, horaInicioExSe, horaFimExSe, ibopeExSe)
INSERT INTO exibicaoSerie
  VALUES(7, 1, 3, TO_DATE('15-01-2009','DD-MM-YYYY'), '20:00', '20:34', 20.3);
INSERT INTO exibicaoSerie
  VALUES(8, 2, 7, TO_DATE('15-07-2010','DD-MM-YYYY'), '21:30', '22:12', 14.2);
INSERT INTO exibicaoSerie
  VALUES(5, 3, 2, TO_DATE('29-07-2003','DD-MM-YYYY'), '18:06', '18:40', 20.9);
INSERT INTO exibicaoSerie
  VALUES(6, 4, 5, TO_DATE('15-07-2010','DD-MM-YYYY'), '22:08', '22:50', 21.2);
INSERT INTO exibicaoSerie
  VALUES(5, 3, 2, TO_DATE('18-12-2001','DD-MM-YYYY'), '21:00', '21:34', 19.3);
INSERT INTO exibicaoSerie
  VALUES(5, 3, 2, TO_DATE('07-09-2011','DD-MM-YYYY'), '21:40', '22:22', 22.2);
INSERT INTO exibicaoSerie
  VALUES(6, 4, 5, TO_DATE('22-10-2006','DD-MM-YYYY'), '21:06', '21:40', 21.0);
INSERT INTO exibicaoSerie
  VALUES(7, 1, 3, TO_DATE('10-05-2002','DD-MM-YYYY'), '22:12', '22:54', 21.7);
INSERT INTO exibicaoSerie
  VALUES(8, 2, 7, TO_DATE('03-04-2007','DD-MM-YYYY'), '21:08', '21:50', 23.5);
/  
-- Inserção de tuplas na tabela jornal
-- jornal (idPr, tituloPr, descricaoPr, idDe, duracaoJo, abrangenciaJo)
INSERT INTO jornal
  VALUES(SEQ_PROGRAMA_IDPR.NEXTVAL, 'Jornal Nacional', 'Jornal diário com informações do Brasil e do mundo', 1, '60 min', 'Nacional');
/  
-- Inserção de tuplas na tabela exibicaoJornal
-- exibicaoJornal (idPr, idFu, dataExJo, horaInicioExJo, horaFimExJo, ibopeExJo)
INSERT INTO exibicaoJornal
  VALUES(9, 4, TO_DATE('15-07-2010','DD-MM-YYYY'), '20:15', '21:15', 20.0);
/
-- Inserção de tuplas na tabela comercial
-- comercial (idPr, tituloPr, descricaoPr, idDe)
INSERT INTO comercial
  VALUES(SEQ_PROGRAMA_IDPR.NEXTVAL, 'Comercial da Gouveia Computadores', 'Comercial de computadores', 6);
INSERT INTO comercial
  VALUES(SEQ_PROGRAMA_IDPR.NEXTVAL, 'Comercial da Papelaria 2B', 'Comercial de material de escritório', 6);
INSERT INTO comercial
  VALUES(SEQ_PROGRAMA_IDPR.NEXTVAL, 'MPI Brasil', 'Comercial de computadores', 6);
INSERT INTO comercial
  VALUES (SEQ_PROGRAMA_IDPR.NEXTVAL, 'A Pandolfi Comercial e Fornecedora LTDA ME', 'Comercial Pandolfi', 6);
INSERT INTO comercial
  VALUES (SEQ_PROGRAMA_IDPR.NEXTVAL, 'A Pandolfi Comercial e Fornecedora LTDA ME', 'Comercial 2 da Pandolfi', 6);
/
-- Inserção de tuplas na tabela exibicaoComercial
-- exibicaoComercial (idPr, dataExCo, horaInicioExCo, horaFimExCo,precoExCo, cnpjCl)
-- precoExCo é um atributo derivado calculado da seguinte forma:
-- precoExCo = (horaFimExCo - horaInicioExCo)*valorComercial.precoPorSegundoVaCo
INSERT INTO exibicaoComercial
  VALUES(10, TO_DATE('22-09-2010','DD-MM-YYYY'), '14:30', '14:31', 1500.00, '04.041.965/0001-83');
INSERT INTO exibicaoComercial
  VALUES(10, TO_DATE('24-09-2010','DD-MM-YYYY'), '6:00', '6:01', 1000.00, '04.041.965/0001-83');
INSERT INTO exibicaoComercial
  VALUES(10, TO_DATE('22-09-2008','DD-MM-YYYY'), '21:30', '21:31', 10000.00, '04.041.965/0001-83');
INSERT INTO exibicaoComercial
  VALUES(10, TO_DATE('25-09-2008','DD-MM-YYYY'), '02:30', '02:31', 500.00, '04.041.965/0001-83');
INSERT INTO exibicaoComercial
  VALUES(12, TO_DATE('21-09-2010','DD-MM-YYYY'), '09:30', '09:32', 2600.00, '11.444.982/0001-27');
INSERT INTO exibicaoComercial
  VALUES(12, TO_DATE('26-02-2010','DD-MM-YYYY'), '06:00', '06:02', 2000.00, '11.444.982/0001-27');
INSERT INTO exibicaoComercial
  VALUES(12, TO_DATE('13-10-2008','DD-MM-YYYY'), '21:30', '21:32', 20000.00, '11.444.982/0001-27');
INSERT INTO exibicaoComercial
  VALUES(12, TO_DATE('16-07-2008','DD-MM-YYYY'), '14:30', '14:32', 3000.00, '11.444.982/0001-27');
INSERT INTO exibicaoComercial
  VALUES(13, TO_DATE('11-01-2010','DD-MM-YYYY'), '09:30', '09:33', 3900.00, '08.779.651/0001-33');
INSERT INTO exibicaoComercial
  VALUES(13, TO_DATE('23-04-2010','DD-MM-YYYY'), '06:00', '06:03', 3000.00, '08.779.651/0001-33');
INSERT INTO exibicaoComercial
  VALUES(13, TO_DATE('17-08-2008','DD-MM-YYYY'), '18:30', '18:33', 15000.00, '08.779.651/0001-33');
INSERT INTO exibicaoComercial
  VALUES(11, TO_DATE('25-07-2011','DD-MM-YYYY'), '21:30', '21:32', 20000.00, '12.212.754/0001-36');
INSERT INTO exibicaoComercial
  VALUES(11, TO_DATE('23-10-2010','DD-MM-YYYY'), '17:30', '17:32', 4000.00, '12.212.754/0001-36');
INSERT INTO exibicaoComercial
  VALUES(11, TO_DATE('20-05-2011','DD-MM-YYYY'), '06:00', '06:02', 2000.00, '12.212.754/0001-36');
INSERT INTO exibicaoComercial
  VALUES(11, TO_DATE('18-11-2010','DD-MM-YYYY'), '02:30', '02:32', 1000.00, '12.212.754/0001-36');
/  
-- Inserção de tuplas na tabela novela
-- novela (idPr, tituloPr, descricaoPr, idDe, producaoNacionalEn)
INSERT INTO novela
  VALUES(SEQ_PROGRAMA_IDPR.NEXTVAL, 'Insensato Coração', 'Uma trama com muitos golpes e armações envolvendo até mesmo dois irmãos', 3, 'Nacional');
INSERT INTO novela
  VALUES(SEQ_PROGRAMA_IDPR.NEXTVAL, 'Cordel Encantado', 'Histórias de amor e traição no nordeste brasileiro', 3, 'Nacional');
INSERT INTO novela
  VALUES(SEQ_PROGRAMA_IDPR.NEXTVAL, 'Vidas Opostas', 'O contraste entre o luxo e a favela', 3, 'Nacional');
/
-- Inserção de tuplas na tabela episodioNovela
-- episodioNovela (idPr, nroEpNo, resumoEpNo, duracaoEpNo)
INSERT INTO episodioNovela
  VALUES(15, 35, 'Norma é assassinada', '59 min');
INSERT INTO episodioNovela
  VALUES(16, 27, 'Ana descobre traição de Marcos', '57 min');
INSERT INTO episodioNovela
  VALUES(15, 36, 'Norma ressucita', '59 min');
INSERT INTO episodioNovela
  VALUES(16, 28, 'Ana descobre traição de Alberto', '57 min');
INSERT INTO episodioNovela
  VALUES(15, 37, 'Norma é assassinada novamente', '59 min');
INSERT INTO episodioNovela
  VALUES(16, 29, 'Ana descobre traição de Augusto', '57 min');
INSERT INTO episodioNovela
  VALUES(15, 38, 'Filha de Norma, Norminha, é assassinada', '59 min');
INSERT INTO episodioNovela
  VALUES(16, 30, 'Ana resolve ter uma relação monogamica', '57 min');
/
-- Inserção de tuplas na tabela exibicaoNovela
-- exibicaoNovela (idPr, nroEpNo, dataExNo, horaInicioExNo, horaFimExNo,ibopeExNo)
INSERT INTO exibicaoNovela
  VALUES(16, 27, TO_DATE('09-10-2009','DD-MM-YYYY'), '19:00', '20:00', 29);
INSERT INTO exibicaoNovela
  VALUES(15, 35, TO_DATE('09-12-2003','DD-MM-YYYY'), '19:00', '20:00', 17);
INSERT INTO exibicaoNovela
  VALUES(16, 27, TO_DATE('17-01-2005','DD-MM-YYYY'), '21:15', '22:15', 21);
INSERT INTO exibicaoNovela
  VALUES(15, 36, TO_DATE('10-12-2003','DD-MM-YYYY'), '19:00', '20:00', 9);
INSERT INTO exibicaoNovela
  VALUES(16, 28, TO_DATE('18-01-2005','DD-MM-YYYY'), '21:15', '22:15', 16);
INSERT INTO exibicaoNovela
  VALUES(15, 37, TO_DATE('11-12-2003','DD-MM-YYYY'), '19:00', '20:00', 16);
INSERT INTO exibicaoNovela
  VALUES(16, 29, TO_DATE('19-01-2005','DD-MM-YYYY'), '21:15', '22:15', 25);
INSERT INTO exibicaoNovela
  VALUES(15, 38, TO_DATE('12-12-2003','DD-MM-YYYY'), '19:00', '20:00', 19);
INSERT INTO exibicaoNovela
  VALUES(16, 30, TO_DATE('20-01-2005','DD-MM-YYYY'), '21:15', '22:15', 12);